\chapter{Analyse des données}

%%%Réduction
%%%Discrétisation

Notre analyse va donc se faire en plusieurs étapes. 
Dans un premier temps, nous créerons un hypercube à partir de notre fichier xml pour stocker nos données.
Ensuite, nous clusteriserons notre ensemble de protéines. 
Enfin, nous procéderons au calcul de la matrice contenant les distances pondérées entre protéines afin de pouvoir obtenir les moyennes inter et intra-groupes pour juger de la qualité de notre analyse. 

\section{Création de l'hypercube}
\subsection{Schéma de structure notre hypercube}
Avant de créer notre hypercube, il nous faut déterminer sa structure. 
Nous avons tout d'abord une table de faits contenant tous les éléments que nous avons dû calculer. 
Ces éléments correspondent aux propriétés physico-chimiques des protéines. 
Ensuite, nous avons les éléments rattachés à la structure primaire de la protéines, à savoir son identifiant, sa taille. 
Les nombres d'hélices, de feuillets et de coudes peuvent être regroupés dans un table structure secondaire. 
Enfin, nous pouvons regrouper les éléments associés à chaque chaine des protéines dans une même table. 
Le schéma ainsi obtenu est représenté dans le schéma suivant. 
Il correspond à un schéma en flocon de neige. 
\begin{center}
\image{schema.jpeg}{Schéma de structure du cube}{1}
\end{center}

\subsection{Implémentation de l'hypercube}
Nous avons choisi d'utiliser une liste dans des dictionnaires imbriqués pour implémenter les attributs de notre hypercube pour pouvoir accéder à chaque attribut d'une protéine en donnant la table et la dimension de l'attribut et l'indice correspondant à la protéine. 


\section{Clusterisation}
Nous avons choisi une méthode basée sur la hiérarchie pour partitionner notre ensemble de protéines. 

Nous partons donc d'un tableau contenant les indices correspondant à nos protéines dans le cube. 
Nous partitionnons alors ce tableau en sous-tableaux correspondant aux groupes que nous obtenons en discriminant nos protéines en nous basant le premier critère choisi. 
Puis, pour les critères suivants, nous remplaçons chaque sous-tableau par ses partions. 
Ainsi, à la fin de la clusterisation, nous obtenons un tableau de tableaux d'indices représentant les divers groupes de protéines. 

Pour le critère de taille, nous avons appliqué le partionnement selon la définition biochimique de taille : nous avons donc borné nos ensembles à 20, 100 et 300 acides aminés. La dernière partition correspondant aux très grandes protéines étant de taille significativement plus importante que les autres, nous avons choisi d'effectuer un sous partionnement pour ce groupe suivant la méthode des K-means.

Pour le critère correspondant à la structure secondaire, nous avons créé une partition pour les protéines sans structure secondaire, une pour celle ne contenant que des hélices, que des feuillets, que des coudes, des feuillets et des hélices et ainsi de suite. 

Pour les autres critères, nous avons utilisé la méthodes des K-means. 


\section{Calcul des moyennes intra et inter-groupes}
À partir de notre cube, nous pouvons calculer une matrice de distance pour chacun des critères que nous avons défini. 
Afin d'homogénéiser ces distances, nous pouvons centrer et réduire ces résultats. 
Puis, depuis ces matrices, nous pouvons calculer une matrice de distances globales. 
Enfin, il nous est possible de calculer une moyenne des distances pour les protéines contenues dans un même groupe, et une moyenne des distances pour les protéines des groupes différents. 
Ces deux paramètres permettent d'évaluer la qualité de notre clusterisation, à savoir si nous avons effectivement réussi à obtenir des groupes minimisant les différences intra-groupes et maximisant les différences inter-groupes. 
Il faut donc que la moyenne des distances intra-groupes soit la plus petite possible, et la moyenne inter-groupe la plus grande possible. 

\section{Optimisation}
En se basant sur les moyennes intra et inter-groupes obtenues, nous avons tenté d'améliorer notre analyse en modifiant l'ordre d'utilisation des critères de la stratégie établie sur la hiérarchisation.
Tant que nous commençons par les critères globaux, les moyennes varient assez peu, l'une s'améliorant et l'autre s éloignant de la valeur recherchée.
Dans l'idéal la moyenne intra-cluster serait proche de -1 et la moyenne inter-cluster proche de 1.
Dans le cas que nous avons évoqué dans la stratégie la moyenne intra-cluster est proche de -1 et la moyenne inter-cluster est très proche de 0.

Le but étant d'obtenir les protéines les plus similaires nous avons poussé la clusterisation jusqu'à avoir des clusters de petite taille par rapport au cluster de départ.
Ceci explique que notre moyenne intra-cluster soit relativement bonne alors que la moyenne inter-cluster est criticable.  
 
\section{Obtention de résultats}
Un fichier texte de sortie recence les exceptions et affiche le contenu de chaque cluster avec ses bornes pour les critères principaux.

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "../main"
%%% End: 
